jak dostat hodnoty z TWebModule do promenne
Otázka od:  Jirka Virt
8. 4. 2004 18:53
Ahoj,
 mam ISAPI web aplikaci.
Jak dostanu z tagu hodnoty do promennych?
priklad:
webdemo.dll/test?hodnota=12345
jde mi o tu hodnotu 12345, jak ji po odeslani  dostat do promennych?
Diky
Jirka
Odpovedá:  Peter Ondras
9. 4. 2004 11:34
(*
Tu je ukazka jednej akcie, ktora nacita nejake 3 hodnoty a vypise ich. V
casti "vygenerovanie stranky" v ramci bloku try..except si mozes doplnit
akykolvek kod (nacitanie udajov z databaz, rozne vypocty a pod.). V
tejto casti su pridavanim "HTML.Add('<nejaky_html_zdrojak>');" doplnas
vizualny vystup. Mozes tu volne pouzivat CSS, tabulky, javascript a pod.
Header a footer (napr. cast <html> a </html>, resp. nejaka cela
hlavicka=zakladny dizajn) mozes nacitavat zo suborov, cim si ulahcis v
buducnosti zmenu dizajnu. Ak chces o tom viac info, tak nie je problem
sukromne
*)
procedure TIshopModule.IshopModuleAction1Action(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var HTML: TStringList;
    hodnota, premenna2, premenna3: String;
begin
  //vynulovanie premennych
  hodnota:='';
  premenna1:='';
  premenna2:='';
  //nacitanie premennych
  if Request.MethodType=mtGet then
    begin
      //metoda GET
      hodnota:=Request.QueryFields.Values['hodnota'];
      premenna1:=Request.QueryFields.Values['premenna2'];
      premenna1:=Request.QueryFields.Values['premenna3'];
    end
  else if Request.MethodType=mtPost then
    begin
      //metoda POST
      hodnota:=Request.ContentFields.Values['hodnota'];
      premenna1:=Request.ContentFields.Values['premenna2'];
      premenna2:=Request.ContentFields.Values['premenna3'];
    end;
  //vygenerovanie stranky
  HTML:=TStringList.Create;
  try
    try
      HTML.Clear;
      HTML.Add('<html>');
      HTML.Add('<body>');
      HTML.Add('  <p>Premenna hodnota je: '+hodnota+'</p>');
      HTML.Add('</body>');
      HTML.Add('</html>');      
    except
      //chybova stranka (v pripade, ze nastane nejaka chyba)
      HTML.Clear;
      HTML.Add('<html>');
      HTML.Add('<body>');
      HTML.Add('  <h1>Nastala chyba pri generovani stranky!</h1>');
      HTML.Add('</body>');
      HTML.Add('</html>');      
    end;
  finally
    //vratenie vysledku do prehliadaca
    Response.Content:=HTML.Text;
    HTML.Free;
  end;
end;
> -----Original Message-----
> Jak dostanu z tagu hodnoty do promennych?
> 
> priklad:
> 
> webdemo.dll/test?hodnota=12345
> 
Odpovedá:  Jiri Virt
9. 4. 2004 11:37
prima diky .. uz jsem na to vecer s pomoci bozi a knizkama prisel  
nj .. ale za zadnou cenu nemuzu otevrit tabulku ... pritom jsem to uz nekdy
pred rokem zkousel a vsechno OK... nj ... musim hledat dal... zajimavy, ze
sem nerozebehnul ani ukazkovou aplikaci.pritom v navrhu tabulky normalne
otevru .... je to zahada
Ale preci jenom bych potreboval radu.
jak debugovat isapi? na netu jsem nasel navody ... vsechno mam nastaveno ..
v D pustim RUN , DLL se zavede, pohybuji se po strankach .. ale jaksi mi to
ne a ne zastavit na miste, kde si dam breakpoint. Je na miste , kterym
prochazi, to jen tak pro uplnost .. takze totalne nechapu, proc D nereaguje.
D5 profi WinXP
Jirka